package com.hhxy.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

//获取类对象中构造器的四种方法：
public class ReflectDemo4 {
    public static void main(String[] args) {
        //获取类对象
        Class sClass = Student.class;
        //1.使用getConstructors()方法获取类对象中所有public修饰的构造器
        Constructor[] constructors1 = sClass.getConstructors();
        for (Constructor constructor : constructors1) {
            System.out.println(constructor);//得到的是构造器的方法名：public com.hhxy.reflect.Student()
            System.out.println(constructor.getName());//得到构造器的名字：com.hhxy.reflect.Student
            System.out.println(constructor.getParameterCount());//获取构造器中的形参的个数
        }
        try {
//            Object s = constructors1[2].newInstance("张三");
            Object s = constructors1[2].newInstance("张三",'a');
            System.out.println(s);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
